% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
]{article}
\usepackage{amsmath,amssymb}
\usepackage{lmodern}
\usepackage{iftex}
\ifPDFTeX
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
  \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
  }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{6pt plus 2pt minus 1pt}}
}{% if KOMA class
  \KOMAoptions{parskip=half}}
\makeatother
\usepackage{xcolor}
\usepackage{longtable,booktabs,array}
\usepackage{calc} % for calculating minipage widths
% Correct order of tables after \paragraph or \subparagraph
\usepackage{etoolbox}
\makeatletter
\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
\makeatother
% Allow footnotes in longtable head/foot
\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
\makesavenoteenv{longtable}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\ifLuaTeX
  \usepackage{selnolig}  % disable illegal ligatures
\fi
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
\hypersetup{
  hidelinks,
  pdfcreator={LaTeX via pandoc}}

\author{}
\date{}

\begin{document}

\hypertarget{ux524dux6cbf}{%
\section{前沿}\label{ux524dux6cbf}}

{[}TOC{]}

统计学习通常被定义为一种主要运用统计学方法的机器学习理论。它关注多个随机变量的建模，模型参数的估计方法，以及模型在不同数据集上的泛化能力。通过统计学习，我们能够深入理解数据规律，做出精准预测，并为决策提供可靠支持。这一理论广泛应用于数据挖掘、模式识别和信息处理等众多人工智能领域，为解决实际问题提供了有力工具。简单地说，它就是关于有特定背景的统计模型的理论。

在本书的写作过程中，笔者并不执着于区分``机器学习''和``统计学习''这两个词，甚至认为两者是等价的。用一个文字公式表示：

（应用）统计学 == 统计学习 == 机器学习

为了构造一个机器学习模型或给出一个相关结论，笔者总是先做从统计学角度做理论准备，并为所有机器学习模型给出统计学解释。

当然笔者也承认，机器学习领域存在并不断出现很多非统计学的方法和思想。这些方法和思想的产生和发展与统计学的联系并不明显，尽管大部分都能给出统计学解释。总体上，机器学习包含了统计学习，尤其是它比较关注非统计学领域的技术和理论。为了强调某种方法或思想的普遍性，或者介绍某些独立于统计学的模型和技术，笔者就会用``机器学习''这个词。

无论如何统计学对本书的写作的影响是非常根本的。在做机器学习方面的研究时，本书提倡两种根本性的思维方式：
-
整体思维：在解决问题前，应该明确所有研究对象的取值范围，如文档就是词的序列而不是别的。
-
分布思维：所有研究对象本质上都是一个分布；文档是分布；图片也是分布。总之，万物皆分布。
其实，这两种思维合在一起，就是在构造统计模型。或者说，统计模型就是这种思维的产物。在建立、解释或理解某个机器学习模型时，人们都应该在这两种思维方式的指导下进行。

\hypertarget{ux5199ux4f5cux539fux5219}{%
\subsection{写作原则}\label{ux5199ux4f5cux539fux5219}}

笔者写作时遵守三项原则：严谨、系统、简洁。

\begin{itemize}
\tightlist
\item
  严谨：所有感兴趣的概念都给出了明确的定义。笔者给出的定义不一定是完美的，总有许多可以改进的地方，但它们用最客观的形式表达了作者的思维内容和过程，展示了作者的视野。一些客观的结论，以定理的形式进行严格的、形式化的表述。
\item
  系统：全文组织参照人们对机器学习模型分类的基本习惯和约定。主要介绍最经典的模型，和一些有理论意义的延伸。没类模型有各自核心的概念，又相互联系，并统一在统计学习的基本框架下。实际上，本书借助了范畴论的工具，粗略地提出了统计（学习）模型范畴。
\item
  简洁：简洁表现正文叙述和符号记法上。笔者采用了很多``懒人记号''。比如，累加符号\(\sum_k\)不注明\(k\)的求和范围，如果这个范围是任意的或者前文多次说明的；又比如，\(X\sim p\)其中\(p\)可以不归一化，因为归一化系数是可以推断出来的。简洁的表达使读者更快理解内容，将注意力集中在重要的地方。有些专业术语使用时都没有给出定义。这其实暗示读者即使不知道也不影响学习。总的来说，虽然简洁和严谨存在矛盾之处，但是这个矛盾是无害的。
\end{itemize}

在讨论概率论/统计学、实分析、线性代数等基础理论时，我们以严谨原则为主；在分析统计学习模型时以简洁原则为主。

\hypertarget{ux5185ux5bb9ux7ec4ux7ec7}{%
\subsection{内容组织}\label{ux5185ux5bb9ux7ec4ux7ec7}}

全书分两部分：``基础篇''、``模型篇''和``方法篇''。前两章是``基础篇''，第3-10章是``模型篇''，最后几章是``方法篇''。

基础篇主要介绍概率论/统计学背景知识，给出统计学习模型的形式化定义。

模型篇是整本书的核心，占据了八章。在撰写过程中，我们受到了被广泛接受的机器学习模型分类方式的强烈影响，即将模型分为回归、分类、聚类和降维等四类。模型篇的具体内容通过``模型的经线''和``研究方式的纬线''编织起来。

模型篇的``经纬''

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 10\tabcolsep) * \real{0.1667}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 10\tabcolsep) * \real{0.1667}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 10\tabcolsep) * \real{0.1667}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 10\tabcolsep) * \real{0.1667}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 10\tabcolsep) * \real{0.1667}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 10\tabcolsep) * \real{0.1667}}@{}}
\toprule()
\begin{minipage}[b]{\linewidth}\raggedright
模型类
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
主要模型
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
参数估计/算法
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
关键词
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
变形和推广
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
应用
\end{minipage} \\
\midrule()
\endhead
线性回归 & 线性回归 & 最小二乘法 & 最小二乘解、广义逆 & Bayesian 回归等
& - \\
线性分类 & Logistic回归/间隔模型/LDA/QDA & 重加权迭代算法 &
判别函数、LDA降秩 & - & - \\
朴素 Bayesian 分类器 & 多项式模型/Bernoullid模型、词袋 & - &
条件独立、共现矩阵、光滑化 & 变维度模型 & 文本分类 \\
决策树 & 决策树 & ID3/C4.5/剪枝算法 & 信息增益、剪枝 & 无监督决策树 &
- \\
聚类 & K-Means/GMM & Lloyd算法/EM算法/坐标下降法 & 能量函数 & FMC算法 &
图像压缩 \\
降维 & PCA/ICA/MNF & SVD/乘法更新 & - & 框架PCA & 图像生成、主题提取 \\
隐变量模型 & 混合模型等 & EM算法、变分算法 & Q-函数/F-函数、隐变量 &
VEM、SEM、MCEM等 & - \\
时间序列和HMM & HMM & Baum-Welch算法、Viterbi算法 &
前向、后向概率，动态规划 & 半监督/缺失数据HMM &
时间序列预测、文本序列生成 \\
\bottomrule()
\end{longtable}

方法篇专门讨论增强原模型功能的机器学习方法。方法篇包含，核方法，神经网络，局部化和集成方法。变分技巧也是一种方法，但已经归入在隐变量模型中。Bayes方法也是一种方法，但作为统计学基础知识放在第1章介绍。利用这些方法，人们可以把旧模型改造为功能更强大的新模型。

\hypertarget{ux53d9ux8ff0}{%
\subsection{叙述}\label{ux53d9ux8ff0}}

正文叙述由``常规叙述''和``特殊文本块''和组成。常规叙述围绕模型展开，包含介绍性的文字，一些严谨的论述和个人的观点。特殊文本块主要指``定义/定理''陈述。它们以独立的文本块形式呈现。此外，还有
- ``注''：对正文补充的说明，需要引起注意的事项； -
``约定''：为了避免对符号产生误解或困惑而临时地对其意义和用法做出规定； -
``原则''：指导性的事实或准则，包含``怎么做有益''的价值判断；原则实质上就是给某个标准下定义；在本书中主要指估计/预测方法的定义。

\hypertarget{ux5b9aux7406ux4e0eux4e8bux5b9e}{%
\subsubsection{定理与事实}\label{ux5b9aux7406ux4e0eux4e8bux5b9e}}

定理又分为两类：一类内容较为抽象，通常有独立的理论价值；另一类通常有明确的应用背景，如阐述某个关于机器学习的事实，或者是一些简单的公式。前者标记为``定理''；后者标记为''事实''。某些事实并没有做到彻底的形式化，但内容都是客观事实。本书大部分定理（包括事实）不会写出证明，最多提供证明的基本思路。

\hypertarget{ux5b9aux4e49}{%
\subsubsection{定义}\label{ux5b9aux4e49}}

给核心概念下定义是一本书保持严谨性的基本要求。一本书中对哪些概念进行了定义，就决定了这本书的类型和范畴。本书定位为应用数学和计算机科学领域的技术类书籍。书中的定义都是对机器学习模型和相关概念给出规定性的解释。此外，从思想交流的角度来看，定义也是为了与读者达成如何使用术语的约定，从而建立共同的语言框架。

所有定义都应该是高度形式化的，但在写作时也要考虑到人类的阅读习惯以及一些符号和记法的惯例。笔者确保本书中所有的定义足够严谨，同时使其表达自然流畅，易于理解。

笔者认为单纯的定义并不提供任何知识，其本质是符号的缩写。定义本身只是指出某种结构或某个概念的存在性和普遍性（存疑）。存在性表明相关概念或对象的构造是可行的，而普遍性说明结构潜在的研究价值。在统计学中，定义一个模型就是在说，某个分布的定义是符合数学规则的，而且普遍存在于自然界和人类社会中。

\hypertarget{ux95eeux9898ux6a21ux578bux4e0eux4efbux52a1}{%
\subsubsection{问题、模型与任务}\label{ux95eeux9898ux6a21ux578bux4e0eux4efbux52a1}}

这是一本介绍统计学习基本原理的理论书，也是一本解决问题的工具书。

那么什么是问题呢？问题是客观世界作用于主观世界的结果，并受到认知主体的持续关注，进而引发深入思考和研究。问题是客观存在的，但对它的发现和理解严重依赖主观感知和判断。问题也是人类认知能力和求知欲望的体现，推动着人们不断寻求答案和解决方案。

通过回忆、思考，甚至想象，人们试图客观描述各种问题，并记录相关现象。这个过程产生了数据。同时人们也会发现一些简单的规律，形成简单的假说。问题是理论的开端。从特殊的问题出发，建立具有普遍意义的理论，这是人们不变的追求。

在不同的领域中，会遇到不同类型的问题。这些问题的性质和复杂程度也不尽相同。为了解决不同的问题，人们会建立不同的标准，并采用与之相适应的方法进行解决。
本书的问题仅限于统计学习问题。目前并没有任何迹象表明解决统计学习问题的方法能解决数学中的各种复杂高深的猜想，或者对解决政治社会领域的诸多问题起到决定性作用。

模型是当问题中的所有主观性都被消除后，得到的就是模型。也就是用一个客观的准则近乎完美地代替人的感官经验，对事物做出判断或做出某个决定。

在本书的范围内，笔者乐意把问题和模型画上等号，因为一个合理的问题应该去除所有主观因素。本书只解决统计学习问题，因此也只介绍统计学习模型。

本书所谓的任务是交给模型解决的问题。完成任务不能有人类实质性的参与。任务本质上蕴含在模型之中。建立了模型，原则上就已经完成了任务，尽管实际上要为之设计专门的算法。

\emph{例}
一个分类问题，是客观世界中的事物作用于大脑，产生一种对事物进行归类的心理活动。认知主体感知到某些分类结果，还可能进一步想象不存在的分类结果，并做出相关判断，如确定选择某种特定的分类。认知主体认为某个客观的规则可以给出自己深思后的分类结果，从而消除主观随意性。这个规则就是分类模型。现在用这个模型对某个事物打上类别标记，就是在做判别任务。

\hypertarget{ux65b9ux6cd5ux4e0eux6280ux5de7}{%
\subsubsection{方法与技巧}\label{ux65b9ux6cd5ux4e0eux6280ux5de7}}

方法是对对象进行有意的一些列操作和与之相关的理论系统，而这里主要对模型进行改造。技巧是方法的凝练表达。出于严谨，技巧的应用会以定理的形式给出，但它本身没有一般的定理那么``绝对''。

\hypertarget{ux7b26ux53f7ux7ea6ux5b9a}{%
\subsection{符号约定}\label{ux7b26ux53f7ux7ea6ux5b9a}}

我们对出现在本书的符号做出说明或规定。绝大部分符号的写法和风格都遵守主流习惯。个别符号的使用和书写风格可能只是笔者的个人习惯，但笔者保证它们只会提高学习效率而不会影响阅读和交流。部分符号在不同领域不同时期可能采用不同风格，而且在未来也会发生细微的改变。笔者力求整体上统一和美观。

\hypertarget{ux5b57ux4f53ux5b57ux6bcdux9009ux62e9}{%
\subsubsection{字体/字母选择}\label{ux5b57ux4f53ux5b57ux6bcdux9009ux62e9}}

\begin{itemize}
\tightlist
\item
  \(i,j,k\): 指标
\item
  \(\mathbb{R},\mathbb{N}\): 特殊数集
\item
  \(f,g,h\): 函数
\item
  \(\mathrm{ln},\mathrm{tr}\): 具体函数
\item
  \(H, \Omega\): 空间或抽象集合
\item
  \(A,B,C,U,V,W\): 矩阵
\item
  \(\mathcal{X},\mathcal{Y},\mathcal{Z}\): 样本空间
\item
  \(X,Y, Z\): 随机变量（概率论/统计学）
\item
  \(x, y, z\): 随机变量（机器学习）
\item
  \(K, L, M, N\): 个数
\item
  \(i.d.d., s.t.\): 惯用语或术语的缩写
\end{itemize}

\hypertarget{ux57faux672cux8fd0ux7b97ux548cux5173ux7cfb}{%
\subsubsection{基本运算和关系}\label{ux57faux672cux8fd0ux7b97ux548cux5173ux7cfb}}

本书使用了很多这种无害的``懒人记号''。\(\sum_i,\prod_i\)\hspace{0pt}分别表示累加和累乘。当累加/累乘运算范围明确或者无需特别指明时，指标的起止数不会被标明。比如\(\sum_ia_i\)指的是\(\sum_{i=1}^{n}a_i\)，其中\(n\)是任意自然数或前文文已经说明的。\(\sum_{ij}\)是对\(i\)和\(j\)两个指标求和，另外，不必写成\(\sum_{i}\sum_{j}\)。\(\sum_{j\neq i}\)这样的记号会产生歧义：即可能表示对所有不等于\(i\)的\(j\)求和，也可能表示对所有互不相等的二元指标\((i,j)\)求和。但读者联系上下文，不会产生误解。必要时笔者也会加以说明。

和累加符号类似，集合的记号为\(\{x_i\}\)，或\(\{x_i\}_i\)以强调该序列的指标\hspace{0pt}\hspace{0pt}，比如一个机器学习学习数据集记为\(\{(x_i,y_i)\}\)\hspace{0pt}\hspace{0pt}。单独使用带脚标的符号\(x_i\)，有时也不注明\(i\)的范围。族/序列也被无差别地记为\(\{x_i\}\)，甚至像集合那样被对待，但它们的本意是映射\(i\mapsto x_i\)。

\(X\propto Y\)表示两个量\(X,Y\)是正比例关系，即\(X=CY,C>0\)。一个类似的符号是\(X\approx Y\)，表示\(X\)近似为\(Y\)，或\(Y\)是\(X\)的估计。

\(x:=t\)表示\(x\)被定义为\(t\)。

\hypertarget{ux96c6ux5408ux51fdux6570ux6620ux5c04}{%
\subsubsection{集合、函数/映射}\label{ux96c6ux5408ux51fdux6570ux6620ux5c04}}

在背景集合明确的情况下，把满足\(P(x)\)的点集写成\(\{P(x)\}\)即可，不用\(\{x\in \mathcal{X}|P(x)\}\)。

\(\ln\)\hspace{0pt}表示自然对数，但现在流行使用\(\log\)。

\(1_A\)是集合\(A\)上\textbf{指示函数}（也称特征函数）。指示函数的另一种形式是，
\[
1_\mathbf{P}:=\begin{cases}
1,& \text{命题}\mathbf{P}\text{成立} \\
0,& \text{否则}
\end{cases}
\] 因此有\(1_A(x)=1_{x\in A}\)。

为了强调一个符号代表函数，把它写成\(f(\cdot)\)的形式，若要强调它是二元函数，则用\(f(\cdot,\cdot)\)。函数的自变量一般总用逗号隔开。函数的主要自变量和次要自变量用分号隔开，形如\(f(x;y)\)，且次要自变量随时会被省略。\(f(x;y)\)也可以看成是只以\(x\)为自变量的函数，其中\(y\)是任意给定但可调整的变量/参数。

\hypertarget{ux7ebfux6027ux4ee3ux6570ux7b26ux53f7}{%
\subsubsection{线性代数符号}\label{ux7ebfux6027ux4ee3ux6570ux7b26ux53f7}}

本节规定关于向量和矩阵的表示和运算的符号。

\hypertarget{ux7d22ux5f15}{%
\paragraph{索引}\label{ux7d22ux5f15}}

设\(x\)是一个向量，则\(x\)的第\(j\)个分量用\(x_j\)表示，在某些场合，用\(x^{(j)}\)表示。设\(A\)是一个矩阵，则\(A\)第\(i\)行第\(j\)列的元素用\(A_{ij}\)表示，而\(A_{i\cdot}\)和\(A_{\cdot j}\)分别表示\(A\)第\(i\)行向量和第\(j\)列向量。

向量也可以用记号\(\{x_j\}\)表示。\(x=\{x_{j}\}\)就代表，\(x_j\)是\(x\)的第\(j\)个分量。类似地，矩阵用\(\{a_{ij}\}\)表示，\(a_{ij}\)是矩阵第\(i\)行第\(j\)列的元素。

第\(k\)个分量是1其余为0的向量记为\(e_k\)（也可以用\(\delta_k\)），称为指示向量（也称特征向量、0-1响应向量）。每一行都是指示向量的矩阵称为指示矩阵（0-1响应矩阵）。

\hypertarget{ux5411ux91cfux8303ux6570ux4e0eux8fd0ux7b97}{%
\paragraph{向量范数与运算}\label{ux5411ux91cfux8303ux6570ux4e0eux8fd0ux7b97}}

\(\R^n\)上向量\(p\)-范数记为 \[\|a\|_p:=
\begin{cases}
(\sum_i|a_i|^p)^{1/p},0<p<\infty\\
|\{i=1,\cdots,N:|a_i|>0\}|,p=0\\
\max_i|a_i|,p=\infty
\end{cases}
\]
仅当\(p\geq 1\)时，\(\|a\|_p\)是真正的范数。向量加权范数\(\|a\|_W:=a^TWa\)，其中\(W\)是正定矩阵。无下标时（如果我忘了写），\(\|a\|\)代表任何一种范数。

向量内积（点积）记为\(a\cdot b\)或\(\langle a,b\rangle\)。向量加权内积\(\langle a,b\rangle_W:=a^TWb\)。虽然所有向量默认为列向量，但是内积运算中，允许\(a\)和\(b\)是列向量也可以是行向量，因为不会引起歧义。

向量和数量不仅允许进行乘法运算，即数乘\(\lambda a\)，而且允许加法运算\(a+\lambda =\{a_j+\lambda\}\)。

\hypertarget{ux77e9ux9635ux8303ux6570ux4e0eux8fd0ux7b97}{%
\paragraph{矩阵范数与运算}\label{ux77e9ux9635ux8303ux6570ux4e0eux8fd0ux7b97}}

\begin{itemize}
\tightlist
\item
  \(AB\): 矩阵乘法运算
\item
  \(A\circ B,A\oslash B\): 矩阵点态(Hadamard)乘法，除法运算
\item
  \(\|A\|_F:=(\sum_{ij}|A_{ij}|^2)^{1/2}\)：矩阵的Frobenius范数。
\item
  \(A^{T},A^{-1}\)和\(A^+\)：分别为矩阵的转置、逆和广义逆。
\item
  \(\mathrm{tr}(A)\)：矩阵迹（\(A\)是方阵）
\item
  \(GL(n)\)：\(n\)阶可逆矩阵类
\item
  \(O(m\times n)\)：大小为\(m\times n\)的正交矩阵类。当\(m=n\)时，直接记为\(O(n)\)。（矩阵\(A\)是正交矩阵，当且仅当\(AA^T\)或\(A^TA\)是单位矩阵。）
\item
  \(A\pm a\):
  表示\(A\pm aI\)，其中\(A\)是\(n\)阶方阵，且\(I\)是\(n\)单位矩阵。也就是说，方阵和一个数量进行四则运算时，相当于和对应的数量矩阵进行四则运算。\(A=a\)同此。
\end{itemize}

为了让文字表述更紧凑，我们使用语句``\(A:m\times n\)
如何如何''，意思是''一个大小为\(m\times n\)的矩阵\(A\)如何如何``。

向量是特殊的矩阵。只要没有特别限制，矩阵运算自动适用于向量。

\hypertarget{ux6982ux7387ux8bbaux4e0eux7edfux8ba1ux5b66ux7b26ux53f7}{%
\subsubsection{概率论与统计学符号}\label{ux6982ux7387ux8bbaux4e0eux7edfux8ba1ux5b66ux7b26ux53f7}}

\hypertarget{ux968fux673aux53d8ux91cfux5206ux5e03}{%
\paragraph{随机变量、分布}\label{ux968fux673aux53d8ux91cfux5206ux5e03}}

在统计学和概率论的语境中，随机变量以及作为随机变量的样本都用大写字母表示，如\(X\)，而观测值才用小写字母表示，如\(x\)\hspace{0pt}。在机器学习的文本中，这个规范可能不再被严格执行，尤其当符号``泛滥''的时候。

\(P(X)\)表示关于随机变量\(X\)的任一分布；\(p(x)\)表示任一密度函数。

需要特别强调：概率密度的严格写法应该是\(P(X=x)\)\hspace{0pt}\hspace{0pt}或\(p_X(x)\)，即指明随机变量\(X\)\hspace{0pt}\hspace{0pt}及其取值\(x\)\hspace{0pt}，但是在大家都心领神会的地方，直接用\(p(x)\)\hspace{0pt}\hspace{0pt}，其中变量名\(x\)用来指示它是随机变量\(X\)\hspace{0pt}\hspace{0pt}\hspace{0pt}的取值。因此，你不能认为\(p(x),p(y)\)是同一个函数\(p(\cdot)\)在不同点上的值，而是关于\(X\)的分布和关于\(Y\)的分布，或是两者在\(x\)和\(y\)上的值。然而，表达式\(p(x_1)\)可能会产生更严重的歧义：它可能指\(X_1\)取值为\(x_1\)的概率值，也可能指\(X\)取值为\(x_1\)的概率值，尤其当\(X\)是离散随机变量且取值范围被记为\(\{x_1,x_2,\cdots\}\)时。一般，前者是正确的理解。此外，\(p(x,y)\)和\(p(y,x)\)都应该理解成\(P(X=x,Y=y)\)。

前文说过，随机变量服从分布\(p(x)\)\hspace{0pt}，表示为\(X\sim p(x)\)\hspace{0pt}\hspace{0pt}\hspace{0pt}，其中\(p(x)\)\hspace{0pt}\hspace{0pt}是分布。笔者强烈建议省略分布中次要的归一化系数，即\(p(x)\)可以是任何非负可积函数，和真正的分布相差一个归一化系数。这么做可以让表达更加式简洁，而不损失任何信息。特别规定\(\theta\sim 1\)表示参数\(\theta\)服从均匀分布或平坦分布。

条件分布表示为：\(X|Y=y\sim p(x|y)\)或\(X|y\sim p(x|y)\)，其中\(p(x|y)\)可以不归一化。\(X|y\sim p(x,y)\)因此是合法的，也不会引起歧义。不过很难说清楚\(X|y\)是什么东西，而且这样独立的写法也不常见；笔者认为更美观的记法是\(P(X|y)\sim p(x|y)\)。参数分布的表达式可写成\(X\sim p(x|\theta)\)，并注明参数\(\theta\)是否未知，或者写成\(X|\theta\sim p(x|\theta)\)，即把参数看作随机变量。最后再重复一遍，本书把分布和密度函数统称为分布。

本书中，``\(\sim\)''是一个被``滥用''的多义符号: 1.
\(X\sim Y\)的含义被延伸为，两个量（随机变量、分布或函数）\(X,Y\)相差一个常数倍，即\(X=CY\)。特别对分布来说，两者总是相差一个归一化系数。
2.
两边取对数后仍写作\(\ln X\sim \ln Y\)。特别对分布来说，两者总是相差一个归一化截距。
3. 它甚至用于表示线性关系，即\(X=CY+D\)，其中\(C,D\)是常数。 4.
笔者有时也非正式地用\(X\sim Y\)表示量\(X\)近似为\(Y\)。\(X\approx Y\)强调量\(X\)数值上近似为量\(Y\)，而\(X\sim Y\)强调随机变量\(X\)的分布（或量\(X\)的值）大致由量\(Y\)决定，或和量\(Y\)高度相关，常用于粗略表示一个机器学习模型。

\hypertarget{ux671fux671bux4f3cux7136ux4e0eux4f30ux8ba1}{%
\paragraph{期望、似然与估计}\label{ux671fux671bux4f3cux7136ux4e0eux4f30ux8ba1}}

笔者接受了一种机器学习里常见而在专业的统计学里不多见的记号：\(E_{x\sim p}f(x)\)，其含义是随机变量\(f(X)\)的期望，其中\(X\sim p\)。

似然用\(L(\theta)\)表示；对数似然用\(l(\theta)\)表示，为了强调样本写成\(l(\theta; x)\)的形式。两者统称为似然。

\(\hat\theta\)一般表示它是\(\theta\)的估计，为了强调样本写成\(\hat\theta(X)\)的形式。\(\theta^*\)一般表示它是关于\(\theta\)的某个优化问题的解。

\hypertarget{ux6837ux672c}{%
\paragraph{样本}\label{ux6837ux672c}}

当我们说到样本的时候，一般指作为样本点的随机变量构成的序列，有时也指集合，并用\(\{x_i\}\)\hspace{0pt}表示。对于独立样本来说，顺序是不重要的。非独立样本的分布无法从总体分布中推断出来。对概率模型\((\mathcal{X},P)\)，笔者推荐用\(\{x_i\}\sim P^*\)（可称为序列分布）表示，\(x_i\sim P\)，但整个序列的联合分布并未确定。这里强调一下，\(P^*\)绝不是公开且严谨的记号。

计数是统计学最原始的形式。表达式\(N(\mathbf{P}(x_i))\)表示满足\(\mathbf{P}(x_i)\)的子样本大小，其中\(\mathbf{P}\)是任意的命题。本书用\(|A|\)表示任何一个集合\(A\)的元素个数。设\(S\)是样本全集，则表达式\(S(\mathbf{P}(x_i))\)表示满足\(\mathbf{P}(x_i)\)的子样本。因此\(N(\mathbf{P}(x_i))=|S(\mathbf{P}(x_i))|\)\hspace{0pt}。

最后，\(\sum_{\mathbf{P}(x_i)}\)表示对满足\(\mathbf{P}(x_i)\)的子样本求和。

\hypertarget{ux811aux6807}{%
\paragraph{脚标}\label{ux811aux6807}}

本书对脚标字母的含义也做了非正式的约定。最常见的脚标字母\(i,j\)\hspace{0pt}\hspace{0pt}\hspace{0pt}\hspace{0pt}\hspace{0pt}分别代表样本编号和属性分量。第\(i\)个样本记为\(x_i\)，其第\(j\)个属性值记为\(x_{ij}\)。有时要把\(x\)的第\(j\)个分量记成\(x^{(j)}\)。如果还用\(x_j\)，那么就可能和表示第\(j\)个样本的\(x_j\)混淆，但在考察单个向量的时候，用\(x_j\)显然是最自然的。遇到可能产生混淆的情况，笔者尽可能用文字解释符号的意义。此外，字母\(k\)\hspace{0pt}\hspace{0pt}常用于类别的编号，或表示降维后属性分量；\(t\)常用于时间序列的脚标，如\(x_t\)。

多个指标放在一起时，如都写在脚标位置，按优先级``样本编号\textless 序列编号\textless 分量指标\textless 迭代指标''，从左到右摆放，并且其中一个指标最好写成肩标。

机器学习中，习惯把数据组织成矩阵形式：\(\{x_{ij}\}\)，即样本脚标\(i\)作为行指标，属性脚标\(j\)作为列指标。然而，我们默认单个样本点\(x_i\)是列向量，尤其在理论分析时。

\hypertarget{ux7b97ux6cd5ux7b26ux53f7}{%
\subsubsection{算法符号}\label{ux7b97ux6cd5ux7b26ux53f7}}

迭代格式的严格写法为，\(x_{t+1}=F(x_t)\)，其中\(x_t\)称为迭代变量，但\(x\leftarrow F(x)\)更符合计算机语言的风格，其中\(x\)是计算机变量，\(\leftarrow\)是赋值操作。

一个算法是一个可以用计算机语言实现的函数。因此可用函数\(A(\cdot)\)表示一个算法。

\hypertarget{ux4ee3ux7801}{%
\subsection{代码}\label{ux4ee3ux7801}}

为了节省纸张，除了一些源码解读外，代码没有附在书上。所有代码被都在托管在GitHub上。

代码分为三类： - 示范性代码：说明一些API用法。 -
源码解读：通过解读源码，帮助读者深入理解算法的实现，并编写出扩展程序。 -
个人作品：主要展示笔者的小作品。

\end{document}
